home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / games / kids / fouryrs.zoo / tile1.lst < prev    next >
File List  |  1993-02-21  |  2KB  |  120 lines

  1. ' tile1
  2. ' Programmed by Seymour Shlien in GFA Basic 3.5
  3. ' 624 Courtenay Avenue
  4. ' Ottawa, Ontario
  5. ' Canada, K2A 3B5
  6. ' Feb 21 1993
  7. DIM deskcolors%(16)
  8. DIM xbs_files$(25)
  9. rez%=XBIOS(4)
  10. IF rez%<>0
  11.   ALERT 3," Please switch   to | low  resolution! ",1,"Oops",b%
  12.   STOP
  13. ENDIF
  14. @get_deskcolors
  15. @set_standard_colors
  16. nx_grid%=30
  17. ny_grid%=24
  18. nx_space%=10
  19. ny_space%=6
  20. x_left%=10
  21. x_right%=x_left%+nx_grid%*nx_space%
  22. y_top%=24
  23. y_bot%=y_top%+ny_grid%*ny_space%
  24. ix_repeat%=6
  25. iy_repeat%=6
  26. col%=1
  27. @color_bar
  28. @draw_grid
  29. REPEAT
  30.   IF MOUSEK=1
  31.     IF MOUSEY>20
  32.       ix%=((MOUSEX-x_left%)/nx_space%) MOD ix_repeat%
  33.       iy%=((MOUSEY-y_top%)/ny_space%) MOD iy_repeat%
  34.       @put_tiles(ix%,iy%,col%)
  35.       PAUSE 5
  36.     ELSE IF MOUSEX<180
  37.       col%=MOUSEX/20
  38.     ELSE IF MOUSEX<230
  39.       DEFFILL 8
  40.       PBOX x_left%,y_top%,x_right%,y_bot%
  41.       @draw_grid
  42.       PAUSE 20
  43.     ENDIF
  44.   ENDIF
  45. UNTIL ((MOUSEK=1) AND (MOUSEX>230) AND (MOUSEY<20))
  46. @restore_deskcolors
  47. PROCEDURE draw_grid
  48.   FOR i%=0 TO nx_grid%
  49.     LINE x_left%+i%*nx_space%,y_top%,x_left%+i%*nx_space%,y_bot%
  50.   NEXT i%
  51.   FOR i%=0 TO ny_grid%
  52.     LINE x_left%,y_top%+i%*ny_space%,x_right%,y_top%+i%*ny_space%
  53.   NEXT i%
  54. RETURN
  55. > PROCEDURE put_tiles(ix%,iy%,col%)
  56.   DEFFILL col%
  57.   i_stop%=(nx_grid%-1)/ix_repeat%
  58.   j_stop%=(ny_grid%-1)/iy_repeat%
  59.   FOR i%=0 TO i_stop%
  60.     FOR j%=0 TO j_stop%
  61.       i1%=i%*nx_space%*ix_repeat%+x_left%+ix%*nx_space%
  62.       i2%=i1%+nx_space%-1
  63.       j1%=j%*ny_space%*iy_repeat%+y_top%+iy%*ny_space%
  64.       j2%=j1%+ny_space%-1
  65.       PBOX i1%,j1%,i2%,j2%
  66.     NEXT j%
  67.   NEXT i%
  68. RETURN
  69. > PROCEDURE color_bar
  70.   CLS
  71.   FOR i=1 TO 8
  72.     DEFFILL i
  73.     PBOX i*20,8,(i+1)*20,16
  74.     BOX i*20,8,(i+1)*20,16
  75.   NEXT i
  76.   DEFTEXT 1
  77.   BOX 182,6,228,16
  78.   TEXT 184,14,"CLEAR"
  79.   BOX 228,6,270,16
  80.   TEXT 230,14,"QUIT"
  81.   DEFFILL 8
  82.   PBOX 0,20,319,199
  83.   DEFMOUSE 0
  84. RETURN
  85. > PROCEDURE get_deskcolors
  86.   LOCAL i%
  87.   FOR i%=0 TO 15
  88.     deskcolors%(i%)=XBIOS(7,i%,-1)
  89.   NEXT i%
  90. RETURN
  91. > PROCEDURE restore_deskcolors
  92.   LOCAL i%
  93.   FOR i%=0 TO 15
  94.     SETCOLOR i%,deskcolors%(i%)
  95.   NEXT i%
  96. RETURN
  97. > PROCEDURE set_standard_colors
  98.   LOCAL i%,j%
  99.   FOR i%=0 TO 15
  100.     READ j%
  101.     SETCOLOR i%,j%
  102.   NEXT i%
  103.   DATA 4095
  104.   DATA 3840
  105.   DATA 240
  106.   DATA 4080
  107.   DATA 15
  108.   DATA 3855
  109.   DATA 255
  110.   DATA 1365
  111.   DATA 819
  112.   DATA 3891
  113.   DATA 1011
  114.   DATA 4083
  115.   DATA 831
  116.   DATA 3901
  117.   DATA 1023
  118.   DATA 0
  119. RETURN
  120.